<template>
  <!-- 导入公共组件 -->
  <upload-excel :on-success="success"></upload-excel>
</template>

<script>
import { importEmployee } from "@/api/employees";
export default {
  data() {
    return {
      type: this.$route.query.type
    };
  },
  methods: {
    async success({ header, results }) {
      //   debugger;
      console.log(results, "results");
      if (this.type === "user") {
        // 如果是导入员工
        const userRelations = {
          入职日期: "timeOfEntry",
          手机号: "mobile",
          姓名: "username",
          转正日期: "correctionTime",
          工号: "workNumber"
        };
        const arr = [];
        // 遍历所有数组
        results.forEach(item => {
          //  需要将每一条数据里面的中文都换成英文
          const userInfo = {};
          //   Object.keys(item)  item 是上面定义的 userRelations 对象
          //   keys 的集合是一个数组
          Object.keys(item).forEach(key => {
            console.log(Object.keys(item), "objct.item");
            //   key 是当前的中文名 找到对应的英文名
            if (
              userRelations[key] === "timeOfEntry" ||
              userRelations[key] === "correctionTime"
            ) {
              userInfo[userRelations[key]] = new Date(
                this.formateDate(item[key], "/") // 只有这样才能入库
              );
              return;
            }
            // 将原来中文对应的值 赋值给原来英文对应的值
            userInfo[userRelations[key]] = item[key];
          });
          //   最终 userInfo 变成了全是英文
          arr.push(userInfo);
        });
        // var newArr = results.map(item => {
        // results.map 会形成一个新数组
        //   var userInfo = {};
        //   Object.keys(item).forEach(key => {
        //     userInfo[userRelations[key]] = item[key];
        //   });
        //   return userInfo;
        // });
        // console.log(newArr);
        await importEmployee(arr); // 调用导入接口
        this.$message.success("导入成功");
      }
      this.$router.back();
    },
    // 转化 excel 的日期格式
    formateDate(numb, format) {
      const time = new Date((numb - 1) * 24 * 3600000 + 1);
      time.setYear(time.getFullYear() - 70);
      const year = time.getFullYear() + "";
      const month = time.getMonth() + 1 + "";
      const date = time.getDate() - 1 + "";
      if (format && format.length === 1) {
        return year + format + month + format + date;
      }
      return (
        year +
        (month < 10 ? "0" + month : month) +
        (date < 10 ? "0" + date : date)
      );
    }
  }
};
</script>
